package com.ruoyi.crm.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 商机产品表业务对象
 *
 * @author ruoyi
 * @date 2025-07-10
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class CrmProspectProductBo extends BaseEntity {

    /**
     * 商机产品ID
     */
    @NotNull(message = "商机产品ID不能为空", groups = { EditGroup.class })
    private Long prospectProductId;

    /**
     * 商机ID
     */
    @NotNull(message = "商机ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long prospectId;

    /**
     * 产品名称
     */
    @NotBlank(message = "产品名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String productName;

    /**
     * 产品类型
     */
    @NotBlank(message = "产品类型不能为空", groups = { AddGroup.class, EditGroup.class })
    private String productType;

    /**
     * 价格
     */
    @NotNull(message = "价格不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long price;

    /**
     * 成本价
     */
    @NotNull(message = "成本价不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long costPrice;

    /**
     * 售价
     */
    @NotNull(message = "售价不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long sellingPrice;

    /**
     * 数量
     */
    @NotNull(message = "数量不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long amount;

    /**
     * 单位
     */
    @NotBlank(message = "单位不能为空", groups = { AddGroup.class, EditGroup.class })
    private String unit;

    /**
     * 折扣
     */
    @NotNull(message = "折扣不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long allowance;

    /**
     * 成本价合计
     */
    @NotNull(message = "成本价合计不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long aggregateCost;

    /**
     * 合计
     */
    @NotNull(message = "合计不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long sum;


}
